/**
 * @author 侯非
 * @date 2009年4月2日
 * @class DeletePersonFileGridPanel
 * @extends Ext.grid.GridPanel
 * @description 人员档案信息表格(删除与恢复)
 */
DeletePersonFileGridPanel = Ext.extend(Ext.grid.GridPanel, {
	/**
	 * 构造方法
	 */
	constructor : function(_config) {
		if (_config == null) {
			_config = {};
		}
		Ext.apply(this, _config);
		/**
		 * 数据存储器
		 */
		this["store"] = new Ext.data.JsonStore({
					url : "personFile.do?operator=findPersonFileByPage",
					root : "rows",
					totalProperty : "totalCount",
					fields : ["pfFileId", "pfName", "pfCompany", "pfBranch",
							"pfState", "pfId", "pfAddDate", "userAddName",
							"pfDeleteState", "pfCheckDate", "userCheckName"]
				});
		/**
		 * 拷贝父类的构造
		 */
		DeletePersonFileGridPanel.superclass.constructor.call(this, {
			id : this.myid,
			title : "人员档案审核与变更",
			stripeRows : true, // 交替行效果
			iconCls : "houfei-treeNodeLeafIcon",
			viewConfig : {
				forceFit : true
			},
			// 列
			columns : [new Ext.grid.RowNumberer(), {
						header : "档案编号",
						sortable : true,
						dataIndex : "pfFileId",
						renderer : this.myRenderer, // 表格单元格提示功能
						scope : this
					}, {
						header : "姓名",
						sortable : true,
						dataIndex : "pfName",
						renderer : this.myRenderer, // 表格单元格提示功能
						scope : this
					}, {
						header : "登记时间",
						sortable : true,
						dataIndex : "pfAddDate",
						renderer : function(_v) {
							var _value = Ext.util.Format.substr(_v, 0, 10);
							var _sdate = new Date();
							_sdate = Date.parseDate(_value, "Y-m-d");
							var _date = Ext.util.Format.date(_sdate, "Y年m月d日");
							return "<span ext:qtip=" + _date + ">" + _date
									+ "</span>";
						}
					}, {
						header : "登记人",
						sortable : true,
						dataIndex : "userAddName",
						renderer : this.myRenderer, // 表格单元格提示功能
						scope : this

					}, {
						header : "公司",
						sortable : true,
						dataIndex : "pfCompany",
						renderer : this.myRenderer, // 表格单元格提示功能
						scope : this
					}, {
						header : "部门",
						sortable : true,
						dataIndex : "pfBranch",
						renderer : this.myRenderer, // 表格单元格提示功能
						scope : this
					}, {
						header : "审核人",
						sortable : true,
						dataIndex : "userCheckName",
						renderer : this.myRenderer, // 表格单元格提示功能
						scope : this
					}, {
						header : "审核时间",
						sortable : true,
						dataIndex : "pfCheckDate",
						renderer : function(_v) {
							var _value = Ext.util.Format.substr(_v, 0, 10);
							var _sdate = new Date();
							_sdate = Date.parseDate(_value, "Y-m-d");
							var _date = Ext.util.Format.date(_sdate, "Y年m月d日");
							return "<span ext:qtip=" + _date + ">" + _date
									+ "</span>";
						}
					}, {
						header : "审核状态",
						sortable : true,
						width : 65,
						dataIndex : "pfState",
						renderer : function(_v) {
							if (_v == "通过审核") {
								return "<img src='images/icons/drop-yes.gif' ext:qtip='通过审核' />";
							} else {
								return "<img src='images/icons/drop-no.gif' ext:qtip='未审核' />";
							}
						}
					}, {
						header : "删除状态",
						sortable : true,
						width : 65,
						dataIndex : "pfDeleteState",
						renderer : function(_v) {
							if (_v == "正常") {
								return "<img src='images/icons/closeCurrentTab.png' ext:qtip='正常'>";
							} else if (_v == "已删除") {
								return "<img src='images/icons/closeOtherTab.png' ext:qtip='已删除'/>";
							} else {
								return "<img src='images/icons/closeCurrentTab.png' ext:qtip='正常'>";
							}
						}
					}],
			selModel : new Ext.grid.RowSelectionModel({
						// 单行选择模式
						singleSelect : true
					}),
			// 填充加载时间
			loadMask : {
				msg : "正在加载数据,请稍候......"
			},
			tbar : ["人员姓名：", {
						xtype : "textfield"
					}, "　登记时间：", {
						xtype : "datefield",
						readOnly : true, // 只读
						format : "Y-m-d"
					}, "-", {
						text : "查看",
						iconCls : "houfei-searchIcon",
						tooltip : "根据条件查询人员档案信息",
						handler : this.onSearch,
						scope : this
					}, "-", {
						text : "清空查询条件",
						iconCls : "houfei-closeCurrentTab",
						tooltip : "清空查询条件",
						handler : this.onClearCondition,
						scope : this
					}],
			bbar : new Ext.PagingToolbar({
				store : this["store"], // 数据存储器
				pageSize : 17, // 页大小
				displayMsg : "共<font color=\"green\"> {2} </font>条记录,当前页记录索引<font color=\"green\"> {0} - {1}</font>&nbsp;&nbsp;&nbsp;",
				displayInfo : true,
				items : ["-", {
							text : "删除",
							iconCls : "houfei-tbarCancelIcon",
							handler : this.onDeletePersonFile,
							scope : this
						}, "-", {
							text : "恢复",
							iconCls : "houfei-editicon",
							handler : this.onResumePersonFile,
							scope : this
						}]
			})
		});

		/**
		 * 加载数据
		 */
		this.getStore().load({
					params : {
						start : 0,
						limit : 17
					}
				});
	},

	/**
	 * 提交Ajax请求成功事件
	 * 
	 * @param {}
	 *            _res
	 */
	onSubmitSuccess : function(_res) {
		if (_res.responseText == "true") {
			this.getStore().reload();
		} else {
			Ext.Msg.alert("系统消息", "操作失败,请检重新操作或与管理员联系!");
		}

	},

	/**
	 * Ajax请求失败(连接失败)
	 */
	onSubmitFailure : function() {
		Ext.Msg.alert("系统消息", "网络繁忙,请检查您的网络是否正常或与管理员联系!");
	},

	/**
	 * Ext.confirm(删除Confirm窗体按钮)单击事件
	 * 
	 * @param {}
	 *            _btn
	 */
	onDeleteConfrimBtnClick : function(_btn) {
		if (_btn == "yes") {
			// 获取当前表格的选择模式
			var _sm = this.getSelectionModel();
			// 获取当前表格主键id
			var _pkid = _sm.getSelected().get("pfId");
			// 进行异步Ajax请求
			Ext.Ajax.request({
						url : "personFile.do",
						method : "post",
						success : this.onSubmitSuccess,
						failure : this.onSubmitFailure,
						scope : this,
						params : {
							operator : "deletePersonFile",
							pfid : _pkid
						}
					});
		}
	},

	/**
	 * Ext.confirm(恢复Confirm窗体按钮)单击事件
	 * 
	 * @param {}
	 *            _btn
	 */
	onResumeConfrimBtnClick : function(_btn) {
		if (_btn == "yes") {
			// 获取当前表格的选择模式
			var _sm = this.getSelectionModel();
			// 获取当前表格主键id
			var _pkid = _sm.getSelected().get("pfId");
			// 进行异步Ajax请求
			Ext.Ajax.request({
						url : "personFile.do",
						method : "post",
						success : this.onSubmitSuccess,
						failure : this.onSubmitFailure,
						scope : this,
						params : {
							operator : "resumePersonFile",
							pfid : _pkid
						}
					});
		}
	},

	/**
	 * 删除按钮单击事件
	 */
	onDeletePersonFile : function() {
		// 获取当前选择模板
		var _sm = this.getSelectionModel();
		if (_sm.getCount() > 0) {
			Ext.Msg.confirm("系统消息", "您确定要删除当前行的人员档案信息吗?",
					this.onDeleteConfrimBtnClick, this);
		} else {
			Ext.Msg.show({
						title : "系统提示",
						msg : "请您选择一条您要删除的人员档案信息",
						buttons : Ext.Msg.OK,
						icon : Ext.Msg.INFO
					});
		}
	},

	/**
	 * 恢复按钮单击事件
	 */
	onResumePersonFile : function() {
		// 获取当前选择模板
		var _sm = this.getSelectionModel();
		if (_sm.getCount() > 0) {
			Ext.Msg.confirm("系统消息", "您确定要恢复当前行的人员档案信息吗?",
					this.onResumeConfrimBtnClick, this);
		} else {
			Ext.Msg.show({
						title : "系统提示",
						msg : "请您选择一条您要恢复的人员档案信息",
						buttons : Ext.Msg.OK,
						icon : Ext.Msg.INFO
					});
		}
	},

	/**
	 * @scope private
	 * @title 表格单元格提示信息方法
	 * @param {}
	 *            _v
	 */
	myRenderer : function(_v) {
		return "<span ext:qtip=" + _v + ">" + _v + "</span>";
	},

	/**
	 * 清空查询条件按钮单击事件
	 */
	onClearCondition : function() {
		// 获取top工具条
		var _tbar = this.getTopToolbar();
		// 获取text框的值
		var _name = _tbar.items.get(1).setValue("");
		// 获取dateField框的值(Date类型)
		var _dtxt = _tbar.items.get(3).setValue("");
	},

	/**
	 * 查询按钮单击事件
	 */
	onSearch : function() {
		// 获取top工具条
		var _tbar = this.getTopToolbar();
		// 获取text框的值
		var _name = _tbar.items.get(1).getValue();
		// 获取dateField框的值(Date类型)
		var _dtxt = _tbar.items.get(3).getValue();
		var _sdate = new Date(_dtxt);
		// 获取日期(String)
		var _date = null;
		if (_dtxt != null && _dtxt != "") {
			_date = _sdate.format("Y-m-d");
		}
		/**
		 * 给当前表格的数据源添加请求参数
		 */
		this.getStore().baseParams = {
			addDate : _date,
			personName : _name
		};
		/**
		 * 重新加载数据
		 */
		this.getStore().load({
					params : {
						start : 0,
						limit : 17
					}
				});
	}

});